package com.ghovos.usermangerpgdemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ghovos.usermangerpgdemo.entity.RoleEntity;

import java.util.List;

/**
 * @author EdgarLiu(刘凌峰) <br/>
 * date: 2022/3/18 <br/>
 * time: 上午9:39 <br/>
 * email: EdgarLlf@foxmail.com
 */
public interface RoleService extends IService<RoleEntity> {
    /**
     * 更具id 获取role信息  包括额外信息
     * @param id 角色id
     * @return  角色实体
     */
    RoleEntity getRoleExtById(Long id);

    /**
     * 更具id 删除role 包括连接表
     * @param id 角色id
     * @return 是否删除成功
     */
    boolean removeByIdWithOtherEntity(Long id);

    /**
     * 添加用户列表
     * @param roleId  roleId
     * @param ids ids
     * @return 是否添加成功
     */
    boolean addUserList(Long roleId, List<Long> ids);

    /**
     * 删除用户列表
     * @param roleId roleId
     * @param ids ids
     * @return 是否删除成功
     */
    boolean deleteUserList(Long roleId, List<Long> ids);

    /**
     * 添加菜单列表
     * @param roleId 角色id
     * @param ids 菜单ids
     * @return 是否删除成功
     */
    boolean addMenuList(Long roleId, List<Long> ids);

    /**
     * 删除菜单列表
     * @param roleId 角色id
     * @param ids 菜单ids
     * @return 是否删除成功
     */
    boolean deleteMenuList(Long roleId, List<Long> ids);

    /**
     * 添加权限列表
     * @param roleId 角色id
     * @param ids 菜单ids
     * @return 是否删除成功
     */
    boolean addPermissionList(Long roleId, List<Long> ids);

    /**
     * 删除菜单列表
     * @param roleId 角色id
     * @param ids 菜单ids
     * @return 是否删除成功
     */
    boolean deletePermissionList(Long roleId, List<Long> ids);

}
